<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery快速参考</title>
<style type="text/css">
body { font-size:0.75em; }
table { width:99%; margin:0 auto; border-top:2px solid #000; border-bottom:2px solid #000; border-collapse:collapse; border-spacing:0; }
table th, table td { padding:0.4em 2em; }
table th { border-bottom:1px solid #000; }
.toTop { float:right; }
</style>
</head>

<body>
<h1>jQuery快速参考</h1>
<hr />
<dl>
  <dt><a href="#jq_n1">C.1 选择符表达式</a></dt>
  <dd>jQuery的工厂函数$()用于在页面中查找要操作的元素。这个函数接收一个按照类似CSS语法构成的字符串作为参数，这个字符串参数就就叫选择符表达式。</dd>
  <dt><a href="#jq_n2">C.2 DOM遍历方法</a></dt>
  <dd>在使用$()创建了jQuery对象之后，通过调用下列DOM遍历方法，可以修改其中匹配的元素，以便将来操作。本书第2章讨论了DOM遍历方法。</dd>
  <dt><a href="#jq_n3">C.3 事件方法</a></dt>
  <dd>为了对用户的行为作出反应，需要使用下面给出的<strong>事件方法</strong>来注册处理程序。注意，许多DOM元素仅适用于特定的元素类型，本附录没有给出相关的细节，本书第3章详细讨论了时间方法。</dd>
  <dt><a href="#jq_n4">C.4 效果方法</a></dt>
  <dd>可以使用效果方法为DOM元素应用动画。第4章详细讨论了效果方法。</dd>
  <dt><a href="#jq_n5">C.5 DOM操作方法</a></dt>
  <dd>第5章详细介绍了DOM操作方法。</dd>
  <dt><a href="#jq_n6">C.6 AJAX方法</a></dt>
  <dd>使用AJAX方法可以不刷新页面就从服务器取得信息。第6章详细讨论了AJAX方法。</dd>
  <dt><a href="#jq_n7">C.7 延迟方法</a></dt>
  <dd>延迟对象及其承诺可以让我们使用方便的语法在长时间运行的任务完成后作出响应。相关内容在第11章有详细的讨论。</dd>
  <dt><a href="#jq_n8">C.8 其他方法</a></dt>
  <dd>以下实用方法不能归入前面的几类中，但在使用jQuery编写脚本时仍然是非常有用的。</dd>
</dl>
<hr title="C.1 选择符表达式" alt="C.1 选择符表达式" class="system-pagebreak" />
<a name="jq_n1"></a>
<h2>C.1 选择符表达式</h2>
<a href="#" class="toTop">回到开头</a>
<p>jQuery的工厂函数$()用于在页面中查找要操作的元素。这个函数接收一个按照类似CSS语法构成的字符串作为参数，这个字符串参数就就叫选择符表达式。</p>
<h3>C.1.1 简单的CSS选择符</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-1
  </caption>
  <tr>
    <th scope="col">选择符</th>
    <th scope="col">匹配</th>
  </tr>
  <tr>
    <td>*</td>
    <td>所有元素</td>
  </tr>
  <tr>
    <td>#id</td>
    <td>带有给定ID的元素</td>
  </tr>
  <tr>
    <td>element</td>
    <td>给定类型的所有元素</td>
  </tr>
  <tr>
    <td>.class</td>
    <td>带有给定类的所有元素</td>
  </tr>
  <tr>
    <td>a, b</td>
    <td>与a或b匹配的元素</td>
  </tr>
  <tr>
    <td>a b</td>
    <td>作为a后代的b匹配的元素</td>
  </tr>
  <tr>
    <td>a &gt; b</td>
    <td>作为a子元素的b匹配的元素</td>
  </tr>
  <tr>
    <td>a + b</td>
    <td>作为a直接子元素的b匹配的元素</td>
  </tr>
  <tr>
    <td>a ~ b</td>
    <td>作为a同辈的b匹配的元素</td>
  </tr>
</table>
<h3>C.1.2 在同辈元素间定位</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-2
  </caption>
  <tr>
    <th scope="col">选择符</th>
    <th scope="col">匹配</th>
  </tr>
  <tr>
    <td>:nth-child(index)</td>
    <td>作为其父元素第index个子元素的元素（从1开始计数）</td>
  </tr>
  <tr>
    <td>:nth-child(even)</td>
    <td>最为其父元素第偶数个子元素的元素（从1开始计数）</td>
  </tr>
  <tr>
    <td>:nth-child(odd)</td>
    <td>作为其父元素第奇数个子元素的元素（从1开始计数）</td>
  </tr>
  <tr>
    <td>:nth-child(formula)</td>
    <td>作为其父元素第n个子元素的元素（从1开始计数）。formula（公式）的格式为an+b，a、b为整数</td>
  </tr>
  <tr>
    <td>:first-child</td>
    <td>作为其父元素第一个子元素的元素</td>
  </tr>
  <tr>
    <td>:last-child</td>
    <td>作为其父元素最后一个子元素的元素</td>
  </tr>
  <tr>
    <td>:only-child</td>
    <td>作为其父元素唯一一个子元素的元素</td>
  </tr>
</table>
<h3>C.1.3 在匹配的元素间定位</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-3
  </caption>
  <tr>
    <th scope="col">选择符</th>
    <th scope="col">匹配</th>
  </tr>
  <tr>
    <td>:first</td>
    <td>结果集中的第一个元素</td>
  </tr>
  <tr>
    <td>:last</td>
    <td>结果集中的最后一个元素</td>
  </tr>
  <tr>
    <td>:not(a)</td>
    <td>结果集中与a不匹配的所有元素</td>
  </tr>
  <tr>
    <td>:even</td>
    <td>结果集中的偶数元素（从0开始计数）</td>
  </tr>
  <tr>
    <td>:odd</td>
    <td>结果集中的技术员数（从0开始计数）</td>
  </tr>
  <tr>
    <td>:eq(index)</td>
    <td>结果集中索引为index的元素（从0开始计数）</td>
  </tr>
  <tr>
    <td>:gt(index)</td>
    <td>结果集中所有位于给定元素之后（大于该索引）的元素（从0开始计数）</td>
  </tr>
  <tr>
    <td>:lg(index)</td>
    <td>结果集中所有位于给定元素之前（小于该索引）的元素（从0开始计数）</td>
  </tr>
</table>
<h3>C.1.4 属性</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-4
  </caption>
  <tr>
    <th scope="col">选择符</th>
    <th scope="col">匹配</th>
  </tr>
  <tr>
    <td>[attr]</td>
    <td>带有属性attr的元素</td>
  </tr>
  <tr>
    <td>[attr=&quot;value&quot;]</td>
    <td>attr属性的值为value的元素</td>
  </tr>
  <tr>
    <td>[attr!=&quot;value&quot;]</td>
    <td>attr属性的值不为value的元素</td>
  </tr>
  <tr>
    <td>[attr^=&quot;value&quot;]</td>
    <td>attr属性的值以value开头的元素</td>
  </tr>
  <tr>
    <td>[attr$=&quot;value&quot;]</td>
    <td>attr属性的值以value结尾的元素</td>
  </tr>
  <tr>
    <td>[attr*=&quot;value&quot;]</td>
    <td>attr属性的值包含子字符串value的元素</td>
  </tr>
  <tr>
    <td>[attr~=&quot;value&quot;]</td>
    <td>attr属性的值是空格分隔的多个字符串，其中一个字符串的值为value的元素</td>
  </tr>
  <tr>
    <td>[attr|=&quot;value&quot;]</td>
    <td>attr属性的值等于value或者以value开头后跟一个连字符的元素</td>
  </tr>
</table>
<h3>C.1.5 表单</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-5
  </caption>
  <tr>
    <th scope="col">选择符</th>
    <th scope="col">匹配</th>
  </tr>
  <tr>
    <td>:input</td>
    <td>所有&lt;input&gt;、&lt;select&gt;、&lt;textarea&gt;和&lt;button&gt;元素</td>
  </tr>
  <tr>
    <td>:text</td>
    <td>type=&quot;text&quot;的&lt;input&gt;元素</td>
  </tr>
  <tr>
    <td>:password</td>
    <td>type=&quot;password&quot;的&lt;input&gt;元素</td>
  </tr>
  <tr>
    <td>:file</td>
    <td>type=&quot;file&quot;的&lt;input&gt;元素</td>
  </tr>
  <tr>
    <td>:radio</td>
    <td>type=&quot;radio&quot;的&lt;input&gt;元素</td>
  </tr>
  <tr>
    <td>:checkbox</td>
    <td>type=&quot;checkbox&quot;的&lt;input&gt;元素</td>
  </tr>
  <tr>
    <td>:submit</td>
    <td>type=&quot;submit&quot;的&lt;input&gt;元素</td>
  </tr>
  <tr>
    <td>:image</td>
    <td>type=&quot;image&quot;的&lt;input&gt;元素</td>
  </tr>
  <tr>
    <td>:reset</td>
    <td>type=&quot;reset&quot;的&lt;input&gt;元素</td>
  </tr>
  <tr>
    <td>:button</td>
    <td>type=&quot;button&quot;的&lt;input&gt;元素</td>
  </tr>
  <tr>
    <td>:enabled</td>
    <td>启用的表单元素</td>
  </tr>
  <tr>
    <td>:disabled</td>
    <td>禁用的表单元素</td>
  </tr>
  <tr>
    <td>:checked</td>
    <td>选中的复选框和单选按钮元素</td>
  </tr>
  <tr>
    <td>:selected</td>
    <td>选中的&lt;option&gt;元素</td>
  </tr>
</table>
<h3>C.1.6 其他自定义选择符</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-6
  </caption>
  <tr>
    <th scope="col">选择符</th>
    <th scope="col">匹配</th>
  </tr>
  <tr>
    <td>:header</td>
    <td>标题元素（如&lt;h1&gt;&lt;h2&gt;）</td>
  </tr>
  <tr>
    <td>:animated</td>
    <td>其动画正在播放的元素</td>
  </tr>
  <tr>
    <td>:contains(text)</td>
    <td>包含给定文本text的元素</td>
  </tr>
  <tr>
    <td>:empty</td>
    <td>不包含子节点的元素</td>
  </tr>
  <tr>
    <td>:has(a)</td>
    <td>后台元素中至少有一个与a匹配的元素</td>
  </tr>
  <tr>
    <td>:parent</td>
    <td>包含子节点的元素</td>
  </tr>
  <tr>
    <td>:hidden</td>
    <td>隐藏的元素，包括通过CSS隐藏的元素及&lt;input type=&quot;hidden&quot; /&gt;</td>
  </tr>
  <tr>
    <td>:visible</td>
    <td>与:hidden匹配的元素相反</td>
  </tr>
  <tr>
    <td>:focus</td>
    <td>获取键盘焦点元素</td>
  </tr>
</table>
<hr title="C.2 DOM遍历方法" alt="C.2 DOM遍历方法" class="system-pagebreak" />
<a name="jq_n2"></a>
<h2>C.2 DOM遍历方法</h2>
<a href="#" class="toTop">回到开头</a>
<p>在使用$()创建了jQuery对象之后，通过调用下列DOM遍历方法，可以修改其中匹配的元素，一遍将来操作。本书第二章讨论了DOM遍历方法。</p>
<h3>C.2.1 筛选元素</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-7
  </caption>
  <tr>
    <th scope="col">遍历方法</th>
    <th scope="col">返回的jQuery对象中包含</th>
  </tr>
  <tr>
    <td>.filter(selector)</td>
    <td>与给定的选择符selector匹配的选中元素</td>
  </tr>
  <tr>
    <td>.filter(callback)</td>
    <td>回调函数callback返回true的选中元素</td>
  </tr>
  <tr>
    <td>.eq(index)</td>
    <td>从0开始计数的第index个选中元素</td>
  </tr>
  <tr>
    <td>.first()</td>
    <td>选中元素中的第一个元素</td>
  </tr>
  <tr>
    <td>.last()</td>
    <td>选中元素中的最后一个元素</td>
  </tr>
  <tr>
    <td>.slice(start, [end])</td>
    <td>从0开始计数的给定范围内的选中元素</td>
  </tr>
  <tr>
    <td>.not(selector)</td>
    <td>选中元素中与给定选择符不匹配的元素</td>
  </tr>
  <tr>
    <td>.has(selector)</td>
    <td>选中元素中有后代匹配给定选择符的元素</td>
  </tr>
</table>
<h3>C.2.2 后代元素</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-8
  </caption>
  <tr>
    <th scope="col">遍历方法</th>
    <th scope="col">返回的jQuery对象中包含</th>
  </tr>
  <tr>
    <td>.find(selector)</td>
    <td>与给定选择符selector匹配的后代元素</td>
  </tr>
  <tr>
    <td>.contents()</td>
    <td>子节点（包括文本节点）</td>
  </tr>
  <tr>
    <td>.children(selector)</td>
    <td>子节点，可以传入可选的选择符selector进一步筛选</td>
  </tr>
</table>
<h3>C.2.3 同辈元素</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-9
  </caption>
  <tr>
    <th scope="col">遍历方法</th>
    <th scope="col">返回的jQuery对象中包含</th>
  </tr>
  <tr>
    <td>.next([selector])</td>
    <td>每个选中元素紧邻的下一个同辈元素，可以传入可选的选择符selector进一步筛选</td>
  </tr>
  <tr>
    <td>.nextAll([selector])</td>
    <td>每个选中元素之后的所有同辈元素，可以传入可选的选择符selector进一步筛选</td>
  </tr>
  <tr>
    <td>.nextUntil([selector],[filter])</td>
    <td>没给选中元素之后、直至但不包含第一个匹配selector元素的同辈元素，可以传入可选的选择符filter进一步筛选</td>
  </tr>
  <tr>
    <td>.prev([selector])</td>
    <td>每个选中元素紧邻的上一个同辈元素，可以传入可选的选择符selector进一步筛选</td>
  </tr>
  <tr>
    <td>.prevAll([])</td>
    <td>每个选中元素之前的所有同辈元素，可以传入可选的选择符selector进一步筛选</td>
  </tr>
  <tr>
    <td>.prevUntil([],[])</td>
    <td>每个选中元素之前、直至但不包含第一个匹配selector元素的同辈元素，可以传入可选的选择符filter进一步筛选</td>
  </tr>
  <tr>
    <td>.siblings([selector])</td>
    <td>所有同辈元素，可以传入可选的选择符selector进一步筛选</td>
  </tr>
</table>
<h3>C.2.4 祖先元素</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-10
  </caption>
  <tr>
    <th scope="col">遍历方法</th>
    <th scope="col">返回的jQuery对象中包含</th>
  </tr>
  <tr>
    <td>.parent([selector])</td>
    <td>每个选中元素的父元素，可以传入可选的选择符selector进一步筛选</td>
  </tr>
  <tr>
    <td>.parents([selector])</td>
    <td>每个选中元素的所有祖先元素，可以传入可选的选择符selector进一步筛选</td>
  </tr>
  <tr>
    <td>.parentsUntil([selector])</td>
    <td>每个选中元素的所有祖先元素、直至但不包含第一个匹配selector的祖先元素，可以传入可选的选择符filter进一步筛选</td>
  </tr>
  <tr>
    <td>.closest(selector)</td>
    <td>与选择符selector匹配的第一个元素，遍历路径从选中元素开始，沿DOM树向上在其中祖先节点中的查找</td>
  </tr>
  <tr>
    <td>.offsetParent()</td>
    <td>第一个选中元素被定位的父元素（如，通过relative或absolute定位）</td>
  </tr>
</table>
<h3>C.2.5 集合操作</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-11
  </caption>
  <tr>
    <th scope="col">遍历方法</th>
    <th scope="col">返回的jQuery对象中包含</th>
  </tr>
  <tr>
    <td>.add(selector)</td>
    <td>选中的元素，加上与给定选择符匹配的元素</td>
  </tr>
  <tr>
    <td>.andSelf()</td>
    <td>选中的元素，加上内部jQuery栈中之前选中的那一组元素</td>
  </tr>
  <tr>
    <td>.end()</td>
    <td>内部jQuery栈中之前选中的元素</td>
  </tr>
  <tr>
    <td>.map(callback)</td>
    <td>对每个选中元素调用回调函数callback之后的结果</td>
  </tr>
  <tr>
    <td>.pushStack(elements)</td>
    <td>指定的元素</td>
  </tr>
</table>
<h3>C.2.6 操作选中的元素</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-12
  </caption>
  <tr>
    <th scope="col">遍历方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.is(selector)</td>
    <td>确定匹配的元素中是否有传入的选择符匹配的元素</td>
  </tr>
  <tr>
    <td>.index()</td>
    <td>取得匹配元素相对于其同辈元素的索引</td>
  </tr>
  <tr>
    <td>.index(element)</td>
    <td>取得匹配元素中与指定元素对应的DOM节点的索引</td>
  </tr>
  <tr>
    <td>$.contains(a,b)</td>
    <td>确定DOM节点b是否包含DOM节点a</td>
  </tr>
  <tr>
    <td>.each(callback)</td>
    <td>迭代匹配的元素，针对每个元素执行callback函数</td>
  </tr>
  <tr>
    <td>.length</td>
    <td>取得匹配元素的数量</td>
  </tr>
  <tr>
    <td>.get()</td>
    <td>取得与匹配元素对应的DOM节点的列表</td>
  </tr>
  <tr>
    <td>.get(index)</td>
    <td>取得匹配元素中与指定索引对应的DOM节点</td>
  </tr>
  <tr>
    <td>.toArray()</td>
    <td>取得与匹配元素对应的DOM节点的列表</td>
  </tr>
</table>
<hr title="C.3 事件方法" alt="C.3 事件方法" class="system-pagebreak" />
<a name="jq_n3"></a>
<h2>C.3 事件方法</h2>
<a href="#" class="toTop">回到开头</a>
<p>为了对用户的行为作出反应，需要使用下面给出的<strong>事件方法</strong>来注册处理程序。注意，许多DOM元素仅适用于特定的元素类型，本附录没有给出相关的细节，本书第3章详细讨论了时间方法。</p>
<h3>C.3.1 绑定</h3>
<table class="tbl" style="width:99%;">
  <tr></tr>
  <caption>
  表 C-13
  </caption>
  <tr>
    <th scope="col">事件方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.ready(handler)</td>
    <td>绑定在DOM和CSS完全加载后调用和处理程序handler</td>
  </tr>
  <tr>
    <td>.bind(type, [data], handler)</td>
    <td>绑定在给定类型的事件type发送到元素时调用的处理程序handler</td>
  </tr>
  <tr>
    <td>.one(type, [data], handler)</td>
    <td>绑定在给定类型的事件type发送到元素时调用的处理程序handler，并在handler被调用后立即解除绑定</td>
  </tr>
  <tr>
    <td>.unbind([type], [handler])</td>
    <td>解除元素上绑定的处理程序（可以指定事件类型或处理程序，不指定则解除所有绑定）</td>
  </tr>
  <tr>
    <td>.live(type, handler)</td>
    <td>绑定当给定事件发送到元素后调用的处理程序，使用事件委托</td>
  </tr>
  <tr>
    <td>.die(type, [handler])</td>
    <td>删除前面通过.live()绑定到元素上的处理程序</td>
  </tr>
  <tr>
    <td>.delegate(selector, type, [data], handler)</td>
    <td>绑定当给定事件发送到与selector匹配的后代元素后调用的处理程序</td>
  </tr>
  <tr>
    <td>.delegate(selector, handlers)</td>
    <td>绑定当给定事件发送到与selector匹配的后代元素后调用的处理程序映射</td>
  </tr>
  <tr>
    <td>.undelegate(selector, type, [handler])</td>
    <td>解除之前通过.delegate()绑定到元素上的处理程序</td>
  </tr>
</table>
<h3>C.3.2 简写绑定</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-14
  </caption>
  <tr>
    <th scope="col">事件方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.blur(handler)</td>
    <td>绑定当元素失去键盘焦点时调用的处理程序</td>
  </tr>
  <tr>
    <td>.change(handler)</td>
    <td>绑定当元素的值改变时调用的处理程序</td>
  </tr>
  <tr>
    <td>.click(handler)</td>
    <td>绑定当元素被单击是调用的处理程序</td>
  </tr>
  <tr>
    <td>.dblclick(handler)</td>
    <td>绑定当元素被双击时调用的处理程序</td>
  </tr>
  <tr>
    <td>.error(handler)</td>
    <td>绑定当元素接收到错误事件（取决于浏览器）时调用的处理程序</td>
  </tr>
  <tr>
    <td>.focus(handler)</td>
    <td>绑定当元素获得键盘焦点时调用的处理程序</td>
  </tr>
  <tr>
    <td>.focusin(handler)</td>
    <td>绑定当元素或后代元素获得键盘焦点时调用的处理程序</td>
  </tr>
  <tr>
    <td>.focusout(handler)</td>
    <td>绑定当元素或后代元素失去键盘焦点时调用的处理程序</td>
  </tr>
  <tr>
    <td>.keydown(handler)</td>
    <td>绑定当元素拥有键盘焦点且有键被按下时调用的处理程序</td>
  </tr>
  <tr>
    <td>.keypress(handler)</td>
    <td>绑定当元素拥有键盘焦点且有按键事件发生时调用的处理程序</td>
  </tr>
  <tr>
    <td>.keyup(handler)</td>
    <td>绑定当元素拥有键盘焦点且有键被释放时调用的处理程序</td>
  </tr>
  <tr>
    <td>.load(handler)</td>
    <td>绑定当元素加载完成时调用的处理程序</td>
  </tr>
  <tr>
    <td>.mousedown(handler)</td>
    <td>绑定当在元素中按下鼠标键时调用的处理程序</td>
  </tr>
  <tr>
    <td>.mouseenter(handler)</td>
    <td>绑定当鼠标指针进入元素时调用的处理程序。不受事件冒泡影响</td>
  </tr>
  <tr>
    <td>.mouseleave(handler)</td>
    <td>绑定当鼠标执政离开元素时调用的处理程序。不受事件冒泡影响</td>
  </tr>
  <tr>
    <td>.mousemove(handler)</td>
    <td>绑定当在元素中移动鼠标指针时调用的处理程序</td>
  </tr>
  <tr>
    <td>.mouseout(handler)</td>
    <td>绑定当鼠标指针离开元素时调用的处理程序</td>
  </tr>
  <tr>
    <td>.mouseover(handler)</td>
    <td>绑定当鼠标指针进入元素时调用的处理程序</td>
  </tr>
  <tr>
    <td>.mouseup(handler)</td>
    <td>绑定当在元素中释放鼠标键时调用的处理程序</td>
  </tr>
  <tr>
    <td>.resize(handler)</td>
    <td>绑定当调整元素大小时调用的处理程序</td>
  </tr>
  <tr>
    <td>.scroll(handler)</td>
    <td>绑定当元素的滚动位置改变时调用的处理程序</td>
  </tr>
  <tr>
    <td>.select(handler)</td>
    <td>绑定当元素中的文本被选中是调用的处理程序</td>
  </tr>
  <tr>
    <td>.submit(handler)</td>
    <td>绑定当表单元素被提交后调用的处理程序</td>
  </tr>
  <tr>
    <td>.unload(handler)</td>
    <td>绑定当元素从内存中被卸载后调用的处理程序</td>
  </tr>
</table>
<h3>C.3.3 特殊简写</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-15
  </caption>
  <tr>
    <th scope="col">事件方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.hover(enter, leave)</td>
    <td>绑定当鼠标指针进入元素时调用的enter及当鼠标指针离开元素时调用的leave处理程序</td>
  </tr>
  <tr>
    <td>.toggle(handler1,handler2, …)</td>
    <td>绑定当元素被单击时调用的handler1，当元素再次被单击时调用的handler2，……依次绑定在后续单击时调用的一系列处理程序</td>
  </tr>
</table>
<h3>C.3.4 触发事件</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-16
  </caption>
  <tr>
    <th scope="col">事件方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.trigger(type, [date])</td>
    <td>触发元素上的事件并执行该事件的默认操作</td>
  </tr>
  <tr>
    <td>.triggerHandler(type, [date])</td>
    <td>触发元素上的事件，但不执行任何默认操作</td>
  </tr>
</table>
<h3>C.3.5 简写触发方法</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-17
  </caption>
  <tr>
    <th scope="col">事件方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.blur()</td>
    <td>触发blur事件</td>
  </tr>
  <tr>
    <td>.change()</td>
    <td>触发change事件</td>
  </tr>
  <tr>
    <td>.click()</td>
    <td>触发click事件</td>
  </tr>
  <tr>
    <td>.dblclick()</td>
    <td>触发dblclick事件</td>
  </tr>
  <tr>
    <td>.error()</td>
    <td>触发error事件</td>
  </tr>
  <tr>
    <td>.focus()</td>
    <td>触发focus事件</td>
  </tr>
  <tr>
    <td>.keydown()</td>
    <td>触发keydown事件</td>
  </tr>
  <tr>
    <td>.keypress()</td>
    <td>触发keypress事件</td>
  </tr>
  <tr>
    <td>.keyup()</td>
    <td>触发keyup事件</td>
  </tr>
  <tr>
    <td>.select()</td>
    <td>触发select事件</td>
  </tr>
  <tr>
    <td>.submit()</td>
    <td>触发submit事件</td>
  </tr>
</table>
<h3>C.3.6 实用方法</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-18
  </caption>
  <tr>
    <th scope="col">事件方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>$.proxy(fn.context)</td>
    <td>创建一个新的在指定上下文中执行的函数</td>
  </tr>
</table>
<hr title="C.4 效果方法" alt="C.4 效果方法" class="system-pagebreak" />
<a name="jq_n4"></a>
<h2>C.4 效果方法</h2>
<a href="#" class="toTop">回到开头</a>
<p>可以使用效果方法为DOM元素应用动画。第四章详细讨论了效果方法。</p>
<h3>C.4.1 预定义效果</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-19
  </caption>
  <tr>
    <th scope="col">效果方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.show()</td>
    <td>显示匹配的元素</td>
  </tr>
  <tr>
    <td>.hide()</td>
    <td>隐藏匹配的元素</td>
  </tr>
  <tr>
    <td>.show(speed, [callback])</td>
    <td>通过高度、宽度及透明度动画显示匹配的元素</td>
  </tr>
  <tr>
    <td>.hide(speed, [callback])</td>
    <td>通过高度、宽度及透明度动画隐藏匹配的元素</td>
  </tr>
  <tr>
    <td>.toggle([speed], [callback])</td>
    <td>显示或隐藏匹配的元素</td>
  </tr>
  <tr>
    <td>.slideDown([speed], [callback])</td>
    <td>以滑入方式显示匹配的元素</td>
  </tr>
  <tr>
    <td>.slideUp([speed], [callback])</td>
    <td>以滑出方式隐藏匹配的元素</td>
  </tr>
  <tr>
    <td>.slideToggle([speed], [callback])</td>
    <td>以滑动方式显示或隐藏匹配的元素</td>
  </tr>
  <tr>
    <td>.fadeIn([speed], [callback])</td>
    <td>以淡入方式显示匹配的元素</td>
  </tr>
  <tr>
    <td>.fadeOut([speed], [callback])</td>
    <td>以淡出方式隐藏匹配的元素</td>
  </tr>
  <tr>
    <td>.fadeToggle([speed], [callback])</td>
    <td>以淡入淡出方式显示或隐藏匹配的元素</td>
  </tr>
  <tr>
    <td>.fadeTo(speed, opacity, [callback])</td>
    <td>调整匹配元素的不透明度</td>
  </tr>
</table>
<h3>C.4.2 自定义动画</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-20
  </caption>
  <tr>
    <th scope="col">效果方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.animate(attributes, [speed], [easing], [callback])</td>
    <td>针对指定的CSS属性执行自定义动画</td>
  </tr>
  <tr>
    <td>.animate(attributes, options)</td>
    <td>.animate()的底层接口，支持对动画队列的控制</td>
  </tr>
</table>
<h3>C.4.3 队列操作</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-21
  </caption>
  <tr>
    <th scope="col">效果方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.queue([queueName])</td>
    <td>取得第一个匹配元素上的动画队列</td>
  </tr>
  <tr>
    <td>.queru([queueName], callback)</td>
    <td>在动画队列的最后添加回调函数</td>
  </tr>
  <tr>
    <td>.queue([queueName], newQueue)</td>
    <td>以新队列替换原队列</td>
  </tr>
  <tr>
    <td>.dequeue([queueName])</td>
    <td>执行队列中的下一个动画</td>
  </tr>
  <tr>
    <td>.clearQueue([queueName])</td>
    <td>清除所有未执行的函数</td>
  </tr>
  <tr>
    <td>.stop([clearQueue, [jumpToEnd])</td>
    <td>停止当前播放的动画，然后启动排列的动画（如果有）</td>
  </tr>
  <tr>
    <td>.delay(duration, [queueName])</td>
    <td>在执行队列中的下一项前等待duration毫秒</td>
  </tr>
  <tr>
    <td>.promise([queueName], [target])</td>
    <td>在集合中所有排队的操作完成后返回一个待解决的承诺对象</td>
  </tr>
</table>
<hr title="C.5 DOM操作方法" alt="C.5 DOM操作方法" class="system-pagebreak" />
<a name="jq_n5"></a>
<h2>C.5 DOM操作方法</h2>
<a href="#" class="toTop">回到开头</a>
<p>第5章详细介绍了DOM操作方法。</p>
<h3>C.5.1 特性与属性</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-22
  </caption>
  <tr>
    <th scope="col">DOM操作方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.attr(key)</td>
    <td>取得特性key的值</td>
  </tr>
  <tr>
    <td>.attr(key, value)</td>
    <td>设置特性key的值为value</td>
  </tr>
  <tr>
    <td>.attr(key, fn)</td>
    <td>设置特性key的值为fn（基于每个匹配的元素单独调用）返回的结果</td>
  </tr>
  <tr>
    <td>.attr(map)</td>
    <td>根据传入的键-值对参数设置属性的值</td>
  </tr>
  <tr>
    <td>.removeAttr(key)</td>
    <td>删除特性key</td>
  </tr>
  <tr>
    <td>.prop(key, fn)</td>
    <td>取得属性key的值</td>
  </tr>
  <tr>
    <td>.prop(key, value)</td>
    <td>设置属性key的值为value</td>
  </tr>
  <tr>
    <td>.prop(key, fn)</td>
    <td>将设置属性key的值为fn（基于每个匹配的元素单独调用）返回的结果</td>
  </tr>
  <tr>
    <td>.prop(map)</td>
    <td>设置属性值，以键-值对形式传入</td>
  </tr>
  <tr>
    <td>.removeProp(class)</td>
    <td>删除属性key</td>
  </tr>
  <tr>
    <td>.addClass(class)</td>
    <td>为每个匹配的元素添加传入的类</td>
  </tr>
  <tr>
    <td>.removeClass(class)</td>
    <td>从每个匹配的元素中删除传入的类</td>
  </tr>
  <tr>
    <td>.toggleClass(class)</td>
    <td>（针对每个匹配的元素）如果传入的类存在则删除该类，否则添加该类</td>
  </tr>
  <tr>
    <td>.hasClass(class)</td>
    <td>如果匹配的元素中至少有一个包含传入的类，则返回true</td>
  </tr>
  <tr>
    <td>.val()</td>
    <td>取得第一个匹配元素的value属性的值</td>
  </tr>
  <tr>
    <td>.val(value)</td>
    <td>设置每个匹配元素的value属性的值为传入的value</td>
  </tr>
</table>
<h3>C.5.2 内容</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-23
  </caption>
  <tr>
    <th scope="col">DOM操作方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.html()</td>
    <td>取得第一个匹配元素的HTML内容</td>
  </tr>
  <tr>
    <td>.html(value)</td>
    <td>将每个匹配元素的HTML内容设置为传入的value</td>
  </tr>
  <tr>
    <td>.text()</td>
    <td>取得所有匹配元素的文本内容，返回一个字符串</td>
  </tr>
  <tr>
    <td>.text(value)</td>
    <td>设置每个匹配元素的文本内容为传入的value</td>
  </tr>
</table>
<h3>C.5.3 CSS</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-24
  </caption>
  <tr>
    <th scope="col">DOM操作方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.css(key)</td>
    <td>取得CSS属性key的值</td>
  </tr>
  <tr>
    <td>.css(key, value)</td>
    <td>设置CSS属性key的值为传入的value</td>
  </tr>
  <tr>
    <td>.css(map)</td>
    <td>根据传入的键-值对参数设置CSS属性的值</td>
  </tr>
</table>
<h3>C.5.4 尺寸</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-25
  </caption>
  <tr>
    <th scope="col">DOM操作方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.offset()</td>
    <td>取得第一个匹配元素相对于视口的上、左坐标值（单位：像素）</td>
  </tr>
  <tr>
    <td>.position()</td>
    <td>取得第一个匹配元素相对于.offsetParent()返回元素的上、左坐标值（单位：像素）</td>
  </tr>
  <tr>
    <td>.scrollTop()</td>
    <td>取得第一个匹配元素的垂直滚动位置</td>
  </tr>
  <tr>
    <td>.scrollTop(value)</td>
    <td>设置每个匹配元素的垂直滚动位置为传入的value</td>
  </tr>
  <tr>
    <td>.scrollLeft()</td>
    <td>取得第一个匹配元素的水平滚动位置</td>
  </tr>
  <tr>
    <td>.scrollLeft(value)</td>
    <td>设置每个匹配元素的水平滚动位置为传入的value</td>
  </tr>
  <tr>
    <td>.height()</td>
    <td>取得第一个匹配元素的高度</td>
  </tr>
  <tr>
    <td>.height(value)</td>
    <td>设置每个匹配元素的高度为传入的value</td>
  </tr>
  <tr>
    <td>.width()</td>
    <td>取得第一个匹配元素的宽度</td>
  </tr>
  <tr>
    <td>.width(value)</td>
    <td>设置每个匹配元素的宽度为传入的value</td>
  </tr>
  <tr>
    <td>.innerHeight()</td>
    <td>取得第一个匹配元素的包含内边距但不包含边框的高度</td>
  </tr>
  <tr>
    <td>.innerWidth()</td>
    <td>取得第一个匹配元素的包含内边距但不包含边框的宽度</td>
  </tr>
  <tr>
    <td>.outerHeight(includeMargin)</td>
    <td>取得第一个匹配元素的包含内边距、边框及可选的外边距的高度</td>
  </tr>
  <tr>
    <td>.outerWidth(includeMargin)</td>
    <td>取得第一个匹配元素的包含内边距、边框及可选的外边距的宽度</td>
  </tr>
</table>
<h3>C.5.5 插入</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-26
  </caption>
  <tr>
    <th scope="col">DOM操作方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.append(content)</td>
    <td>在每个匹配元素内部的末尾插入content</td>
  </tr>
  <tr>
    <td>.appendTo(selector)</td>
    <td>将匹配的元素插入到selector选择符匹配的元素内部的末尾</td>
  </tr>
  <tr>
    <td>.prepend(content)</td>
    <td>将每个匹配元素内部的开头插入content</td>
  </tr>
  <tr>
    <td>.prependTo(selector)</td>
    <td>将匹配的元素插入到selector选择符匹配的元素内部的开头</td>
  </tr>
  <tr>
    <td>.after(content)</td>
    <td>在每个匹配元素的后面插入content</td>
  </tr>
  <tr>
    <td>.insertAfter(selector)</td>
    <td>将匹配的元素插入到selector选择符匹配的元素的后面</td>
  </tr>
  <tr>
    <td>.before(content)</td>
    <td>在每个匹配元素的前面插入content</td>
  </tr>
  <tr>
    <td>.insertBefore(selector)</td>
    <td>将匹配的元素插入到selector选择符匹配的元素的前面</td>
  </tr>
  <tr>
    <td>.wrap(content)</td>
    <td>将匹配的每个元素包装在content中</td>
  </tr>
  <tr>
    <td>.wrapAll(content)</td>
    <td>将匹配的每个元素作为一个单元包装在content中</td>
  </tr>
  <tr>
    <td>.wrapInner(content)</td>
    <td>将匹配的每个元素内部的内容包装在content中</td>
  </tr>
</table>
<h3>C5.6 替换</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-27
  </caption>
  <tr>
    <th scope="col">DOM操作方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.replaceWith(content)</td>
    <td>将匹配的元素替换为content</td>
  </tr>
  <tr>
    <td>.replaceAll(selector)</td>
    <td>将selector选择符匹配的元素替换为匹配的元素</td>
  </tr>
</table>
<h3>C.5.7 删除</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-28
  </caption>
  <tr>
    <th scope="col">DOM操作方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.empty()</td>
    <td>删除每个匹配元素的 子节点</td>
  </tr>
  <tr>
    <td>.remove([selector])</td>
    <td>从DOM中删除匹配的节点，也可以通过selector选择符筛选</td>
  </tr>
  <tr>
    <td>.detach([selector])</td>
    <td>从DOM中删除匹配的节点，也可以通过selector选择符筛选，但保留jQuery给它们添加的数据</td>
  </tr>
  <tr>
    <td>.unwrap()</td>
    <td>删除元素的父元素</td>
  </tr>
</table>
<h3>C.5.8 复制</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-29
  </caption>
  <tr>
    <th scope="col">DOM操作方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.clone([withHandlers])</td>
    <td>返回所有匹配的元素的副本，也可以复制事件处理程序</td>
  </tr>
</table>
<h3>C.5.9 数据</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-30
  </caption>
  <tr>
    <th scope="col">DOM操作方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.data(key)</td>
    <td>取得与第一个匹配元素关联的key键的数据项</td>
  </tr>
  <tr>
    <td>.data(key, value)</td>
    <td>设置与第一个匹配元素关联的key键的数据项为value</td>
  </tr>
  <tr>
    <td>.removeData(key)</td>
    <td>移除与每个匹配元素关联的key值的数据项</td>
  </tr>
</table>
<hr title="C.6 AJAX方法" alt="C.6 AJAX方法" class="system-pagebreak" />
<a name="jq_n6"></a>
<h2>C.6 AJAX方法</h2>
<a href="#" class="toTop">回到开头</a>
<p>使用AJAX方法可以不刷新页面就从服务器取得信息。第6章详细讨论了AJAX方法。</p>
<h3>C.6.1 发送请求</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-31
  </caption>
  <tr>
    <th scope="col">AJAX方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>$.ajax(options)</td>
    <td>使用传入的options生成一次AJAX请求。这是一个通常由其他便捷方法调用的底层方法</td>
  </tr>
  <tr>
    <td>.load(url, [data], [callback])</td>
    <td>向传入的url生成一次AJAX请求，然后将响应放在匹配的元素中</td>
  </tr>
  <tr>
    <td>$.get(url, [data], [callback], [returnType])</td>
    <td>使用GET方法向传入的url生成一次AJAX请求</td>
  </tr>
  <tr>
    <td>$.getJSON(url, [data], [callback])</td>
    <td>向传入的url生成一次AJAX请求，并且将响应作为JSON数据结构解析</td>
  </tr>
  <tr>
    <td>$.getScript(url, [callback])</td>
    <td>向传入的url生成一次AJAX请求，并且将响应作为JavaScript脚本执行</td>
  </tr>
  <tr>
    <td>$.post(url, [data], [callback], [returnType])</td>
    <td>使用POST方法向传入的url生成一次AJAX请求</td>
  </tr>
</table>
<p>C.6.2 监视请求</p>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-32
  </caption>
  <tr>
    <th scope="col">AJAX方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.ajaxComplete(handler)</td>
    <td>绑定当任意AJAX事务完成后调用的处理程序</td>
  </tr>
  <tr>
    <td>.ajaxError(handler)</td>
    <td>绑定当任意AJAX事务发生错误时调用的处理程序</td>
  </tr>
  <tr>
    <td>.ajaxSend(handler)</td>
    <td>绑定当任意AJAX事务开始时调用的处理程序</td>
  </tr>
  <tr>
    <td>.ajaxStart(handler)</td>
    <td>绑定当任意AJAX事务开始但没有其他AJAX事务活动时调用的处理程序</td>
  </tr>
  <tr>
    <td>.ajaxStop(handler)</td>
    <td>绑定当任意AJAX事务结束但没有其他AJAX事务还在活动时调用的处理程序</td>
  </tr>
  <tr>
    <td>.ajaxSuccess(handler)</td>
    <td>绑定当任意AJAX事务成功完成时调用的处理程序</td>
  </tr>
</table>
<h3>C.6.3 配置</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-33
  </caption>
  <tr>
    <th scope="col">AJAX方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>$.ajaxSetup(options)</td>
    <td>为后续的AJAX事务设置默认选项</td>
  </tr>
  <tr>
    <td>$.ajaxPrefilter([dataTypes]), handler)</td>
    <td>在$.ajax()处理每个请求之前，修改每个AJAX请求的选项</td>
  </tr>
  <tr>
    <td>$.ajaxTransport(transportFunction)</td>
    <td>为AJAX事务定义一个新的传输机制</td>
  </tr>
</table>
<h3>C.6.4 实用方法</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-34
  </caption>
  <tr>
    <th scope="col">AJAX方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.serialize()</td>
    <td>将一组表单控件的值编码为一个查询字符串</td>
  </tr>
  <tr>
    <td>.serializeArray()</td>
    <td>将一组表单控件的值编码为一个JSON数据结构</td>
  </tr>
  <tr>
    <td>$.param(map)</td>
    <td>将任意值的映射编码为一个查询字符串</td>
  </tr>
  <tr>
    <td>$.globalEval(code)</td>
    <td>在全局上下文中求值给定的JavaScript字符串</td>
  </tr>
  <tr>
    <td>$.parseJSON(JSON)</td>
    <td>将给定的JSON字符串转换为JavaScript对象</td>
  </tr>
  <tr>
    <td>$.parseXML(xml)</td>
    <td>将给定的XML字符串转换为XML文档</td>
  </tr>
</table>
<hr title="C.7 延迟方法" alt="C.7 延迟方法" class="system-pagebreak" />
<a name="jq_n7"></a>
<h2>C.7 延迟方法</h2>
<a href="#" class="toTop">回到开头</a>
<p>延迟对象及其承诺可以让我们使用方便的语法在长时间运行的任务完成后作出响应。相关内容在第11章有详细的讨论。</p>
<h3>C.7.1 创建对象</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-35
  </caption>
  <tr>
    <th scope="col">函数</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>$.Deferred([setupFunction])</td>
    <td>返回一个新的延迟对象（deferred读[dɪ'fɜːd]意[延期的、推迟]）</td>
  </tr>
  <tr>
    <td>$.when(deferreds)</td>
    <td>在给定的延迟对象解决了之后返回一个待解决的承诺对象</td>
  </tr>
</table>
<h3>C.7.2 延迟对象的方法</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-36
  </caption>
  <tr>
    <th scope="col">方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.resolve([args])</td>
    <td>解决延迟对象并使用给定的参数调用完成回调函数</td>
  </tr>
  <tr>
    <td>.resolveWith(context, [args])</td>
    <td>解决延迟对象并使用给定的参数调用完成回调函数，同时让关键字this引用回调函数中的context</td>
  </tr>
  <tr>
    <td>.reject([args])</td>
    <td>拒绝延迟对象并使用给定的参数调用失败回调函数</td>
  </tr>
  <tr>
    <td>.rejectWith(context, [args])</td>
    <td>拒绝延迟对象并使用给定的参数调用失败回调函数，同时让关键字this引用回调函数中的context</td>
  </tr>
  <tr>
    <td>.promise([target])</td>
    <td>返回与当前延迟对象对应的承诺对象</td>
  </tr>
</table>
<h3>C.7.3 承诺对象的方法</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-37
  </caption>
  <tr>
    <th scope="col">方法</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>.done(callback)</td>
    <td>当对象被解决之后调用callback</td>
  </tr>
  <tr>
    <td>.fail(callback)</td>
    <td>当对象被拒绝之后调用callback</td>
  </tr>
  <tr>
    <td>.always(callback)</td>
    <td>当对象被解决或被拒绝之后调用callback</td>
  </tr>
  <tr>
    <td>.then(doneCallbacks, failCallbacks)</td>
    <td>当对象被解决之后调用doneCallbacks，或在对象被拒绝之后调用failCallbacks</td>
  </tr>
  <tr>
    <td>.isRejected()</td>
    <td>如果对象被拒绝了，返回true</td>
  </tr>
  <tr>
    <td>.isResolved()</td>
    <td>如果对象被解决了，返回true</td>
  </tr>
  <tr>
    <td>.pipe([doneFilter], [failFilter])</td>
    <td>返回一个新的承诺对象，该对象在原始承诺对象被解决时也会被解决，可选地通过一个函数来进行筛选</td>
  </tr>
</table>
<hr title="C.8 其他方法" alt="C.8 其他方法" class="system-pagebreak" />
<a name="jq_n8"></a>
<h2>C.8 其他方法</h2>
<a href="#" class="toTop">回到开头</a>
<p>以下实用方法不能归入前面的几类中，但在使用jQuery编写脚本时仍然是非常有用的。</p>
<h3>C.8.1 jQuery对象的属性</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-38
  </caption>
  <tr>
    <th scope="col">属性</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>$.support</td>
    <td>返回一个属性的映射，表示浏览器是否支持各种特性和标准</td>
  </tr>
</table>
<h3>C.8.2 数组和对象</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-39
  </caption>
  <tr>
    <th scope="col">函数</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>$.each(collection, callback)</td>
    <td>迭代遍历集合，针对集合中的每一项执行回调函数</td>
  </tr>
  <tr>
    <td>$.extend(target, addition, …)</td>
    <td>扩展target对象，即将后面传入对象的属性添加到这个对象中（extend读[iksˈtend]意[延伸、扩展]）</td>
  </tr>
  <tr>
    <td>$.grep(array, callback, [invert])</td>
    <td>通过使用回调函数测试来筛选数组（读['grep]意[  global regular expression print  ]）</td>
  </tr>
  <tr>
    <td>$.makeArray(object)</td>
    <td>将对象转换为一个数组（array读[əˈrei]）</td>
  </tr>
  <tr>
    <td>$.map(array, callback)</td>
    <td>针对数组中每一项执行回调函数，将返回的结果组织成一个新数组返回</td>
  </tr>
  <tr>
    <td>$.inArray(value, array)</td>
    <td>确定数组array中是否包含值value；如果value没有包含在array中，则返回-1</td>
  </tr>
  <tr>
    <td>$.merge(array1, array2)</td>
    <td>合并数组array1和array2（merge读[mə:dʒ]意[合并、融合]）</td>
  </tr>
  <tr>
    <td>$.unique(array)</td>
    <td>从数组中移除重复的DOM元素（unique读[ju:ˈni:k]）</td>
  </tr>
</table>
<h3>C.8.3 对象内省</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-40
  </caption>
  <tr>
    <th scope="col">函数</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>$.isArray(object)</td>
    <td>确定object是不是一个数组</td>
  </tr>
  <tr>
    <td>$.isEmptyObject(object)</td>
    <td>确定object是不是空的</td>
  </tr>
  <tr>
    <td>$.isFunction(object)</td>
    <td>确定object是不是一个函数</td>
  </tr>
  <tr>
    <td>$.isPlainObject(object)</td>
    <td>确定object是不是通过对象字面量或new Object创建的（plain读[pleɪn]意[朴素的、明白的]）</td>
  </tr>
  <tr>
    <td>$.isWindow(object)</td>
    <td>确定object是不是浏览器窗口</td>
  </tr>
  <tr>
    <td>$.isXMLDoc(object)</td>
    <td>确定object是不是XML节点</td>
  </tr>
  <tr>
    <td>$.type(object)</td>
    <td>取得object的JavaScript类</td>
  </tr>
</table>
<h3>C.8.4 其他</h3>
<table class="tbl" style="width:99%;">
  <caption>
  表 C-41
  </caption>
  <tr>
    <th scope="col">函数</th>
    <th scope="col">说明</th>
  </tr>
  <tr>
    <td>$.trim(string)</td>
    <td>从字符串末尾移除空白符（trim读[trim]意[修剪、整理]）</td>
  </tr>
  <tr>
    <td>$.noConflict([removeAll])</td>
    <td>向其他库让渡$标识符使用权，恢复使用jQuery标识符（conflict读[ˈkɔnflikt]意[冲突]）</td>
  </tr>
  <tr>
    <td>$.noop()</td>
    <td>一个什么也不做的函数（noop读no[nəu]operation[ˌɔpəˈreiʃən]意[无操作]）</td>
  </tr>
  <tr>
    <td>$.now()</td>
    <td>返回当前时间，以自纪元时间戳开始到现在的秒数表示</td>
  </tr>
</table>
<hr />
<p>本内容收集自《jQuery基础教程<sup style="font-size:0.5em;">（第三版）</sup>》，仅自用，禁止发布与公开！</p>
</body>
</html>
